package com.game.modular.game.playerAssets.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.util.*;

/**
 * 武将队伍(PvpRanks)表实体类
 *
 * @author cxy
 * @since 2024-08-07 19:27:13
 */
@ApiModel("武将队伍")
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@SuppressWarnings("serial")
public class PvpRanks extends Model<PvpRanks> {// swagger2,mybatis-plus
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 生成实体字段
    @TableId(type = IdType.AUTO)
    @ApiModelProperty("队伍id")
    private Long id;

    @ApiModelProperty("账号uid")
    private Long uid;

    @ApiModelProperty("队伍编号")
    private Long rankNo;

    @ApiModelProperty("队伍状态 1正常 2战斗中")
    private Integer status;
    
    @ApiModelProperty("所在城池id")
    private Long cityId;
    
    @ApiModelProperty("队伍名称")
    private String rankName;
    
    @ApiModelProperty("队伍描述")
    private String rankDesc;
    
    @ApiModelProperty("队伍头像")
    private String rankAvatar;
    
    @ApiModelProperty("武将1")
    private Long heroId1;
    
    @ApiModelProperty("武将2")
    private Long heroId2;
    
    @ApiModelProperty("武将3")
    private Long heroId3;
    
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 序列化版本号
    @TableField(exist = false)
    private static final long serialVersionUID = -72095236205420175L;
    /////////////////////////////////////////////////////////////////////////////////////////////////////////// 获取主键值
    @Override
    public Serializable pkVal() {
        return this.uid+this.rankNo;
    }
    ///////////////////////////////////////////////////////////////////////////////////////////////////////// 非数据库字段

    /////////////////////////////////////////////////////////////////////////////////////////////////////////    领域业务
    public Set<Long> obtainCoreHeroIds(){
        HashSet<Long> longs = new HashSet<>();
        if (heroId1!=null&&heroId1!=0){
            longs.add(heroId1);
        }
        if (heroId2!=null&&heroId2!=0){
            longs.add(heroId2);
        }
        if (heroId3!=null&&heroId3!=0){
            longs.add(heroId3);
        }
        return longs;
    }
}

